#include <iostream>
#include <string>
#include "Car.h"
using namespace std;

extern vector<Car> cars; // 全局变量在main文件中声明，在task1文件中赋值

// 1、完成10台小车的信息录入，并完成编号
void task1()
{
    //四个轮胎
    vector <Tire> tires;
    for(int i=0;i<4;i++)
    {
        Tire tire("麦克纳姆轮", "175");// 轮胎信息
        tires.push_back(tire);
    }
    //底盘信息
    Underpan underpan("dp12345678", "SCOUT MINI", 451, 490, 115, 0, "四轮四驱", 10,tires);

    // 定义AGX套件信息
    AGX agx("AGX Xavier", 32, 512, 64, 32, 32);
    
     // 定义双目摄像头信息
    Camera camera("RealSense D435i", "D430", 1920, 1080, 30, 87,58, 90);

    // 定义多线激光雷达信息
    Lidar lidar("RS-Helios-16p", 16, 100, 8);

    // 定义9轴陀螺仪信息
    Gyroscope gyroscope("CH110", "NXP");

    // 定义液晶显示屏信息
    Green green(11.6, "super");

    // 定义电池模块信息
    Battery battery("24V","15Ah", "24V", 2);

    //录入10台小车的信息
    for(int i=1;i<=10;i++)
    {
        string car_id = "cqusn"+ to_string(i+10)+"SMARTCAR";//生成小车编号
        Car car(car_id, underpan, agx, camera, lidar, gyroscope, green, battery);
        cars.push_back(car); // 将小车添加到向量中
    }
}

// 打印所有小车信息
void print_car_info()
{
    cout<<"任务1——完成录入小车的任务，并打印相关信息："<<endl;
    for ( Car& car : cars) {
        car.printCarDetails();
    }
}